//Definition file - Ball.h

#ifndef Ball_H
#define Ball_H

#include "PV.h"
#include "Figure.h"

/*
 * The class Ball implements the ball which is gonna be bouncing in the scenario.
 * We stablish here the following attributes in order to accomplish the exercise:
 * 1.- The position is the center of the particle.
 * 2.- The radius is, obviously, the radius of the drawn circunference.
 * 3.- The direction is the sense of the ball. We could use here, instead of a
 *     separate attribute, the module of the position. Due to some problems while
 *     implementing it, this is actually the way we solved it.
 * 4.- The circle is an object belonging to the class Figure to represent the
 *     image, with representation purposes only
 *
 * In the method draw() we use an approximation of polygons to draw the ball
 */

class Ball {

   private:
      PV position;
      float radius;
      PV direction;
      Figure circle;

   public:
      Ball(  );
      Ball( PV , float , PV , Figure );

      PV getPos(  );
      PV getDir(  );
      float getRadius(  );
      Figure getCircle(  );

      void setPos( PV );
      void setPos( float , float );
      void setDir( PV );
      void setRadius( float );
      void setCircle( Figure );

      void avanza();
      randomBall(  );
      void draw();
};


#endif


